class Solution {
    public int subarraySum(int[] nums, int k) {
        int len = nums.length;
        int result = 0;
        int[] preSum = new int[len + 1];
        preSum[0] = 0;
        // 1、计算前缀和
        for(int i = 0;i < len; i++){
            preSum[i+1] = preSum[i] + nums[i];
        }

        // 2、求出区间内数组和=k
        for(int left = 0; left < len; left++){
            for(int right = left; right < len; right++){
                // 区间内前缀和向减 = 这个区间内数组和
                if(preSum[right + 1] - preSum[left] == k){
                    result++;
                }
            }
        }
       
        return result;
    }
}